Event函数是一个Virtual Protected函数,它响应于用户触发的事件,事件多种多类,可以参考help帮助文档。

之所以要提到它,是因为我需要实现一个实时显示鼠标坐标的功能,网上实现的方式都是使用setmousetracking(),但是对于我这种情况来说,这并不能实现,我在一篇博客上,也恰好看到了博主跟我同样的问题。

123

http://lps-683.iteye.com/blog/2260091

博主是使用的事件过滤器,但是我在实验过后,并没有使用博主的方法(我木有搞成功),于是我在试验鼠标移动是否触发事件时,发现了在event函数中能够响应鼠标移动的事件,所以据此,我采用了另外一种情况。

那就是,首先,设置setmousetracking(true),开启鼠标跟踪。第二,构造event事件,判断当前的鼠标坐标与先前的坐标是否不同,以确认是否发生了改变,以免重复操作。

2017年5月18日11:28:02

我使用setmousetracking不成功,因为之前使用的界面类是QTabWidget,但是转换为QStackedWidget后,即可使用setmousetracking进行鼠标的实时跟踪了。

代码

代码中,为何加入一个“i”来累加呢?

不加这段代码,将会被判断程序出错,可以实际试试。我调试时的错误:

错误

我发现这可能是因为UI的界面的创造时间位于event函数被建立起来之后,所以在event里直接调用界面,此时传送字符串将引发内存泄露的危害,造成程序崩溃。